package com.sisgesbyte.services.logistica;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;

import com.sisgesbyte.common.ConstModLogistica;
import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.dao.logistica.MantenimientoAlmacenDao;
import com.sisgesbyte.data.entity.logistica.AlmacenEntity;
import com.sisgesbyte.services.logistica.bean.AlmacenBean;
import com.sisgesbyte.services.logistica.bean.ListaAlmacenResponse;

@Stateless
public class MantenimientoAlmacenServiceImpl implements
		MantenimientoAlmacenService {
	
	@EJB
	private MantenimientoAlmacenDao mantenimientoAlmacenDao;

	@Inject
	private Validaciones validaciones;
	
	@Override
	public ListaAlmacenResponse listaAlmacen(String codTransaccion,
			FiltrosSQLBean cadenaFiltros) {
		String mensajeTransaccionMetodo = "[listaAlmacen idTx=" + codTransaccion + "] - ";
		ListaAlmacenResponse response = new ListaAlmacenResponse();
		
		List<AlmacenEntity> listaAlmacen =null;
		try{
			listaAlmacen = mantenimientoAlmacenDao.listaAlmacenes(cadenaFiltros);
		}catch(Exception e){
			response.setCodigoRespuesta(codTransaccion);
			response.setCodigoRespuesta(ConstModLogistica.MANT_LISTAR_COD_IDT);
			response.setMensajeRespuesta(ConstModLogistica.MANT_LISTAR_MSJ_IDT);
			return response;
		}
		
		if(listaAlmacen.size() > 0){
			List<AlmacenBean> listaBean = new ArrayList<AlmacenBean>();
			for(AlmacenEntity ls :listaAlmacen){
				AlmacenBean bean = new AlmacenBean();
				bean.setActive(ls.getActive());
				bean.setCiudad(validaciones.validarCamposString(ls.getCiudad()));
				bean.setCiudadId(ls.getCiudad_id());
				bean.setCodAlmacen(validaciones.validarCamposString(ls.getCod_almacen()));
				bean.setCodLocal(validaciones.validarCamposString(ls.getCod_local()));
				bean.setDescripcion(validaciones.validarCamposString(ls.getDescripcion()));
				bean.setDireccion(validaciones.validarCamposString(ls.getDireccion()));
				bean.setDistritoId(ls.getDistrito_id());
				bean.setDivision(validaciones.validarCamposString(ls.getDivision()));
				bean.setDivisionPaisId(ls.getDivision_pais_id());
				bean.setEmpresaId(ls.getEmpresa_id());
				bean.setId(ls.getId());
				bean.setLocalesId(ls.getLocales_id());
				bean.setObservaciones(validaciones.validarCamposString(ls.getObservaciones()));
				bean.setPais(validaciones.validarCamposString(ls.getPais()));
				bean.setPaisId(ls.getPais_id());
				bean.setTelefono(validaciones.validarCamposString(ls.getTelefono()));
				listaBean.add(bean);
			}
			response.setCodigoRespuesta(codTransaccion);
			response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
			response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			response.setListaAlmacen(listaBean);
			
		}else{
			System.out.println(mensajeTransaccionMetodo + "No se encontro Data de almacenes");
			response.setCodigoRespuesta(codTransaccion);
			response.setCodigoRespuesta(ConstModLogistica.MANT_LISTAR_COD_IDF);
			response.setMensajeRespuesta(ConstModLogistica.MANT_LISTAR_MSJ_IDF);
		}
		return response;
	}

}
